package com.douyu.water.core.dao;

import com.douyu.water.core.model.Role;
import com.douyu.water.core.model.RoleExample;
import com.douyu.water.core.model.RoleMenuKey;

import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface RoleMapper {
    /**
     * 统计记录数
     *
     * 
     */
    int countByExample(RoleExample example);

    /**
     * 根据条件删除
     *
     * 
     */
    int deleteByExample(RoleExample example);

    /**
     * 根据主键删除
     *
     * 
     */
    int deleteByPrimaryKey(String ucode);

    /**    
     * 新建记录
     */
    int insert(Role record);

    /**
     * 根据条件插入记录
     *
     * 
     */
    int insertSelective(Role record);

    /**
     * 根据条件查询列表
     *
     * 
     */
    List<Role> selectByExample(RoleExample example);

    /**
     * 根据主键查询记录
     *
     * 
     */
    Role selectByPrimaryKey(String ucode);

    /**
     * 根据条件有选择的更新
     *
     * 
     */
    int updateByExampleSelective(@Param("record") Role record, @Param("example") RoleExample example);

    /**
     * 根据条件更新
     *
     * 
     */
    int updateByExample(@Param("record") Role record, @Param("example") RoleExample example);

    /**
     * 根据主键有选择的更新
     *
     * 
     */
    int updateByPrimaryKeySelective(Role record);

    /**
     * 根据主键更新
     *
     * 
     */
    int updateByPrimaryKey(Role record);

    /**
     * 批量插入数据库
     * @param list List<RoleMenuKey>
     * @return
     */
	int insertBatch(List<RoleMenuKey> list);
	
	/**
	 * 检索已经分配的主键
	 * @param rolecode
	 * @return
	 */
	List<String> selectCheckMenu(@Param("rolecode")String rolecode);

	/**
	 * 删除角色权限
	 * @param trim
	 * @return
	 */
	int deleteAuth(@Param("roleCode")String roleCode);
}